package top.ajunnihao.core.util;

import java.io.File;

/**
 * TODO 文件的本地存储与访问，path 和 url 的换算
 *
 * @author AJun
 * @version 1.0.0
 * @date 2020/6/1
 */
public class FileStore {

    /**
     * 文件上传根目录
     */
    public File rootDir = new File("C:/bbsfile/");

    /**
     * 文件上传访问 url 前缀
     */
    public String urlPrefix = "/bbsfile/";

    public FileStore(String dir, String urlPrefix) {
        this(new File(dir), urlPrefix);
    }

    public FileStore(File dir, String urlPrefix) {
        this.rootDir = dir;
        this.urlPrefix = urlPrefix;
        this.rootDir.mkdirs();
    }

    // 传入相对路径path，返回File
    public File getFile(String path) {
        rootDir.mkdirs();
        return new File(rootDir, path);
    }

    // 传入相对路径path，返回URL
    public String getUrl(String path) {
        return urlPrefix + path;
    }

    // 根据URL，找到相对路径
    public String pathOfUrl(String url) {
        return url.substring(urlPrefix.length());
    }

    // 根据URL，找到相应的文件
    public File fileOfUrl(String url) {
        return new File(rootDir, pathOfUrl(url));
    }

}
